
<%@page import="gamebook.Administrador"%>
<%@page import="javax.resource.spi.AdministeredObject"%>
<%@page import="java.io.File"%>
<%@page import="gamebook.Foto"%>
<%@page import="gamebook.Paginacion"%>
<%@page import="gamebook.TipoMensaje"%>
<%@page import="gamebook.MensajeGenerico"%>
<%@page import="gamebook.Evento"%>
<%@page import="java.util.Date"%>
<%@page import="gamebook.UsuarioGenerico"%>
<%@page import="gamebook.Publicacion"%>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="gamebook.Usuario"%>
<%@page import="java.text.SimpleDateFormat"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%
    //Cogemos el usuario que está utilizando la web del objeto Session
    UsuarioGenerico usuario = (UsuarioGenerico) session.getAttribute("usuario");

    //Cogemos el usuario del cual estamos viendo el muro
    UsuarioGenerico usuariomuro = (UsuarioGenerico) session.getAttribute("usuariomuro");

    //Cogemos el número de la página que estamos GET (pag), si no hay es la primera página
    int pagina = Paginacion.cogePagDeGet(request.getParameter("pag"));

    //Vemos cuantas publicaciones en total tiene el usuario para mostrar
    int fotosTotales = Foto.contarAlbumPorUsuario(usuariomuro);

    //Hacemos la paginación
    Paginacion paginacion = new Paginacion(Foto.FOTXPAG, fotosTotales, pagina);

    //Valor de la opcion
    String opcionString = "irAFotos";

    //Pagina actual en formato String para usar en enlaces
    String paginaString = "&pag=" + (paginacion.getPaginaActual() + 1);

%>


<!DOCTYPE html>
<html>
    <head>
        <link href="css/reset.css" type="text/css" rel="stylesheet" />
        <link href="css/gamebook.css" type="text/css" rel="stylesheet" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><%= usuariomuro.getNombre() + " " + usuariomuro.getApellidos()%></title>
    </head>
    <body>

        <%
            //[Si hay foto que mirar]
            if (request.getParameter("ver") != null) {
                //Si hay una foto que ver cogemos el id
                try {
                    //Pasamos el parámetro a entero (posibilidad de NumberFormatException)
                    int idFoto = Integer.parseInt(request.getParameter("ver"));
                    //Pedimos la foto a la base de datos (posibilidad de 'null')
                    Foto foto = Foto.seleccionarPorIdBD(idFoto);
                    //Comprobamos que no es 'null'
                    if (foto != null) {
                        //Comprobamos que el dueño de la foto es amigo del usuario o es el usuario mismo
                        if (foto.getUsuario().esAmigo(usuario) || foto.getUsuario().getId() == usuario.getId()) {
                            //Mostramos la ventana modal
                            out.print("<div id='overlayModal'> </div>");
                            out.print("<div id='contenedorModal' style='top:100px;left:50%;margin-left:-" + (foto.getAncho() / 2) + "px;width:" + foto.getAncho() + "px;'>");
                            out.print("<a href='control?opcion=irAFotos" + paginaString + "'>");
                            out.print("<img src='" + foto.getRutaOriginal() + "' />");
                            out.print("</a>");
                            out.print("<p class='mensajeInformativo' style='height:80px;width:" + foto.getAncho() + "px;'>" + foto.getDescripcion() + "</p>");
                            out.print("</div>");//contenedorModal
                        }
                    }
                } catch (Exception ex) {
                    //No hace falta hacer nada
                }
            } //Fin de [Si hay foto que mirar]
%>                                                  

        <%@include file="cabecera.jsp" %>

        <div id="contenido">
            <%
                //Altura personalizable para el bloque izquierdo y derecho
                String alturaBloque = "700px"; //Esto se usa dentro de 'izquierda.jsp'
%>
            <%@include file="izquierda.jsp" %>

            <div id="centro">
                <div id="nuevapublicacion">
                    <form id="nueva" name="nueva" method="post" action="multipartServlet" enctype="multipart/form-data">
                        <label for="texto">Descripcion Foto:</label>
                        <textarea id="texto" name="texto" maxlength="100"></textarea>
                        <input type="hidden" name="opcion" value="nuevaFoto" />
                        <input type="submit" id="enviar" name="enviar" value="Subir Foto" />
                        <span id="archivo"><label for="foto">Subir Foto:</label><input type="file" id="foto" name="foto" /></span>
                    </form>
                </div>
            </div>

            <div id="album">
                <form method="post" action="control">
                    <input type="hidden" name="opcion" value="borrarfotos" />
                    <input type="hidden" name="pagina" value="<%= (pagina + 1)%>" />
                    <h2>Album de fotos de <%= usuariomuro.getNombre() + " " + usuariomuro.getApellidos()%></h2>
                    <span class="acciones"><input type="submit" name="borrar" id="borrar" value="Borrar Seleccionados" /> </span>
                    <div id="fotos">
                        <%
                            //Pedimos las fotos correspondientes según el usuario y la paginación
                            List<Foto> listFoto = Foto.seleccionarAlbumPorUsuarioBD(usuariomuro, paginacion.offset(), paginacion.getRegistrosPorPagina());

                            //Si hay fotos que mostrar las vamos metiendo en una lista
                            if (listFoto.size() > 0) {
                                out.print("<ul>");
                                for (Foto foto : listFoto) {
                                    out.print("<li>");
                                    out.print("<a href='control?opcion=irAFotos&ver=" + foto.getId() + "&pag=" + (paginacion.getPaginaActual() + 1) + "' alt='" + foto.getDescripcion() + "'>");
                                    out.print("<img src='" + foto.getRutaMiniatura() + "' /><br />");
                                    out.print("</a>");
                                    out.print("<small>");
                                    if (usuario.getId() == usuariomuro.getId() || usuario instanceof Administrador) {
                                        //Si el usuario es el dueño, le damos la opción de borrar la foto
                                        out.print("<input type='checkbox' name='idborrar' value='" + foto.getId() + "' /> ");
                                    }
                                    out.print(foto.getFechaString());
                                    out.print("</small>");
                                    out.print("</li>");
                                }
                                out.print("</ul>");
                            } else {
                                //Si no había fotos que mostrar, ponemos un cartel avisando de que no hay
                                out.print("<p style='margin-left:450px;'>No hay fotos que mostrar</p>");
                            }

                        %>
                    </div>
                    <div class="navegador">
                        <span class="active">Pag <%=(paginacion.getPaginaActual() + 1)%>/<%=(paginacion.ultimaPagina() + 1)%></span>   
                        <a class="first" href="control?opcion=irAFotos&pag=1">«</a>
                        <a class="prev" href="control?opcion=irAFotos&pag=<%=(paginacion.paginaAnterior() + 1)%>">‹</a>
                        <a class="next" href="control?opcion=irAFotos&pag=<%=(paginacion.paginaPosterior() + 1)%>">›</a>
                        <a class="last" href="control?opcion=irAFotos&pag=<%=(paginacion.ultimaPagina() + 1)%>">»</a>
                    </div>
                </form>
            </div>

            <%@include file="piepagina.jsp" %>

        </div>

    </body>
</html>
